Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Danderyd Challenger Australian Open - Melbourne Ottignies-Louvain-la-Neuve Challenger Manama Challenger Barletta Challenger Ostrava Challenger Split Challenger Zagreb Challenger Ilkley Challenger Wimbledon - London Istanbul Challenger Manacor Challenger Hangzhou Open - Hangzhou Shanghai Rolex Masters - Shanghai Almaty Open - Almaty Bratislava 2 Challenger Banja Luka Challenger Sibiu Challenger Adelaide International - Adelaide Australian Open - Melbourne French Open - Paris Wimbledon - London Nordea Open - Bastad Plava Laguna Croatia Open - Umag Nigeria F1 Nigeria F2 Portugal F2 Portugal F3 Italy F1 Italy F3 Germany F4 Great Britain F1 Spain F6 Tunisia F2 Tunisia F3 Spain F13 Morocco F2 Morocco F3 Spain F17 Spain F18 Romania F16 Portugal #1-w3 Spain F31 Portugal #1-w3 Morocco F1 Morocco F2 Spain F33 Morocco F1 Morocco F2 Portugal F2 Spain F39 Spain F41 Spain F42 Italy F1 Portugal F4 Portugal F5 Portugal F6 Italy F13 Bosnia & Herzegovina F2 Croatia F8 Bosnia/Herzegovina F6 Bosnia/Herzegovina F1 Bosnia & Herzegovina F2 Croatia F7 Croatia F8 Croatia F1 Croatia F2 Italy F6 Bosnia & Herzegovina F3 Serbia F2 Croatia F8 Croatia F9 Croatia F13 Croatia F14 Turkey F32 Turkey F33 Turkey F3 Turkey F4 Croatia F1 Italy F1 Italy F2 Bosnia & Herzegovina F1 Bosnia & Herzegovina F2 Bosnia & Herzegovina F3 Bosnia & Herzegovina F5 Croatia F12 Turkey F2 Croatia F1 Portugal F1 Portugal F2 Portugal F3 Portugal F4 Italy F1 Italy F5 Bulgaria F1 Italy F12 Romania F4 Bosnia & Herzegovina F4 Italy F13 Serbia F3 Italy F15 Poland F3 Poland F5 Portugal F10 Croatia F12 Portugal F11 Peru F2 U.S. Open - New York Portugal F9 Portugal F10 Portugal F11 Sri Lanka F1 Sri Lanka F2 Sri Lanka F3 Portugal F1 Portugal F3 Qatar F1 Qatar F2 Qatar F3 Portugal F12 Tunisia F4 Portugal F1 Portugal F3 Spain F7 Portugal F4 European Open - Brussels Erste Bank Open - Vienna Portugal F1 Spain F24 Spain F25 Spain F27 Germany F12 Italy F27 Italy F28 Portugal F5 Spain F12 Spain F13 Bulgarian Open Challenger - Sofia Marrakech Challenger Poznan Challenger Buenos Aires Challenger Kazan Challenger Sao Paulo Challenger Sao Jose Do Rio Preto Challenger Casablanca Challenger Guangzhou Challenger Irving Challenger Kenitra Challenger Casablanca Challenger Mohammedia Challenger Casablanca Challenger Santo Domingo Challenger Israel F3 Italy F7 Italy F20 Bosnia & Herzegovina F2 Croatia F2 Bosnia & Herzegovina F5 Serbia F1 Serbia F3 Aptos Challenger New Haven Challenger Bratislava Challenger Bendigo Challenger Split Challenger Barcelona Challenger Meerbusch Challenger Serbia F7 Croatia F7 Cordenons Challenger Croatia F12 Croatia F11 Meerbusch Challenger Poland F4 Banja Luka Challenger Portugal F3 Portugal #1-w1 Portugal #1-w2 Peru F3 Portugal #1-w4 Spain F29 Spain F32 Portugal #1-w1 Portugal #1-w2 Portugal #1-w4 Portugal F4 Spain F29 Spain F30 Spain F32 Spain F34 Spain F6 Spain F7 Romania F17 Portugal F1 Spain F28 Matsuyama Challenger Kobe Challenger Noumea Challenger Antalya Challenger Zadar Challenger Mallorca Challenger Canberra Challenger Bonn Challenger Santo Domingo Challenger Brest Challenger Lyon Challenger Montemar Challenger Maia Challenger Canberra Challenger Zadar Challenger Croatia F10 Estoril Open - Estoril Buenos Aires Challenger Orbetello Challenger Grand Prix Hassan II - Casablanca Estoril Open - Estoril Brasov Challenger Estoril Open - Estoril Brasil Open - Costa do Sauipe Estoril Open - Estoril Brasil Open - Costa do Sauipe Estoril Open - Estoril Fergana Challenger - Fergana Medibank International - Sydney Movistar Open - Santiago Brasil Open - Costa do Sauipe Open Diputacion Ciudad de Pozoblanco - Cordoba Grand Prix Hassan II - Casablanca ATP Studena Croatia Open - Umag Qatar ExxonMobil Open - Doha Heineken Open - Auckland Abierto Mexicano Telcel - Acapulco Estoril Open - Estoril Studena Croatia Open - Umag s'Tennis Masters Challenger - Graz Mercedes Cup - Stuttgart If Stockholm Open - Stockholm Brisbane International - Brisbane Open 13 - Marseille BRD Nastase Tiriac Trophy - Bucharest Winston-Salem Open - Winston-Salem Kremlin Cup - Moscow Aircel Chennai Open - Chennai Akbank Private Banking TED Open - Istanbul Grand Prix Hassan II - Casablanca Barcelona Open BancSabadell - Barcelona TEB BNP Paribas Istanbul Open - Istanbul Geneva Open - Geneva Vegeta Croatia Open - Umag Garanti Koza Sofia Open - Sofia Memphis Open - Memphis Abierto Mexicano Telcel - Acapulco TEB BNP Paribas Istanbul Open - Istanbul Konzum Croatia Open - Umag Erste Bank Open - Vienna Memphis Open - Memphis Delray Beach Open - Delray Beach Dubai Duty Free Tennis Championships - Dubai Hungarian Open - Budapest TEB BNP Paribas Istanbul Open - Istanbul Copa Petrobras-Argentina - Buenos Aires Konzum Croatia Open - Umag Bet-at-home Open - Hamburg Abierto Mexicano - Los Cabos Abierto Internacional Varonil Ciudad de Cancun - Cancun Winston-Salem Open - Winston-Salem St. Petersburg Open - St. Petersburg Shenzhen Open - Shenzhen Sydney International - Sydney Open Sud de France - Montpellier ABN AMRO World Tennis Tournament - Rotterdam Dubai Duty Free Tennis Championships - Dubai Gazprom Hungarian Open - Budapest AEGON Championships - London Antalya Cup - Antalya Tunis Challenger Plava Laguna Croatia Open - Umag Prostejov Challenger St. Petersburg Open - St. Petersburg Lugano Challenger Turin Challenger Shenzhen Open - Shenzhen Kremlin Cup - Moscow San Marino Challenger Cordenons Challenger ABN AMRO World Tennis Tournament - Rotterdam Geneva Open - Geneva Turkish Airlines Open Antalya - Antalya SkiStar Swedish Open - Bastad Winston-Salem Open - Winston-Salem St. Petersburg Open - St. Petersburg Zhuhai Open - Zhuhai Guayaquil Challenger Kremlin Cup - Moscow Tanger Challenger Qatar ExxonMobil Open - Doha Rabat Challenger Delray Beach Open - Delray Beach Abierto Mexicano Telcel - Acapulco bett1HULKS Championships - Cologne Astana Open - Nur-Sultan Open Sud de France - Montpellier Abierto Mexicano Telcel - Acapulco Serbia Open - Belgrade Alessandria Challenger Prostejov Challenger Plava Laguna Croatia Open - Umag Turin Challenger Cordenons Challenger San Marino Challenger Trani Challenger Seville Challenger St. Petersburg Open - St. Petersburg Kremlin Cup - Moscow Montevideo Challenger Trnava Challenger Asuncion Challenger Sao Paulo Challenger Open Sud de France - Montpellier Open 13 Provence - Marseille Grand Prix Hassan II - Marrakech Serbia Open - Belgrade Stockholm Open - Stockholm Firenze Open - Florence Banja Luka Open - Banja Luka Marrakech Challenger Qatar ExxonMobil Open - Doha Szczecin Challenger Rome Challenger Santos Challenger Sao Paulo Challenger Arad Challenger Japan Open Tennis Championships - Tokyo Belgrade Open - Belgrade Cordenons Challenger Rio Open - Rio de Janeiro Movistar Chile Open - Santiago Tiriac Open - Bucharest Banja Luka Challenger Seville Challenger Hamburg Open - Hamburg Boss Open - Stuttgart Hangzhou Open - Hangzhou Hellenic Championship - Athens Sao Paulo Challenger Rome Challenger Prostejov Challenger Poznan Challenger Bergamo Challenger Alphen Challenger Banja Luka Challenger Sibiu Challenger Spain F8 Chennai Challenger San Benedetto Challenger Oberstaufen Challenger Guadalajara Challenger VIII Open Internacional D'Andorra - Andorra Alphen Challenger Nottingham 2 Challenger Copa Sevilla Internacionales de Andalucia - Seville Czech Open - Prostejov ATU Cup - Weiden Open de Montauban - Montauban X Ciutat de Barcelona - Barcelona Olbia Challenger - Olbia Lisbon Challenger ECM Prague Open 2005 - Prague Zagreb Open - Zagreb Badden Open by Rothaus - Ettlingen Schickendanz Open - Furth Trofeo Internacional Club Laieta - Barcelona Nord LB Open - Braunschweig Open de Montauban - Montauban Societa Canottieri Mincio 2005 - Mantova Arroyo de la Encomienda - Valladolid 7° Trani Cup - Trani San Marino Cepu Open - San Marino LXV Concurso Internacional Vigo - Vigo Antonio Savoldi-Marco Co. - Manerbio Black Forest Open - Freudenstadt Challenger Copa Sevilla - Seville XI Ciutat de Barcelona - Barcelona Blois Challenger UTC Open by Selena - Cherkassy BH Indoor Sarajevo - Sarajevo Tunis Open - Tunis Memorial A. Manfredini Sassuolo Challenger - Sassuolo San Benedetto Challenger - San Benedetto Medjurgorje Open - Medjugorje Copa Petrobras-Brazil - Aracaju Copa Petrobras-Paraguay - Asuncion Bancolombia Open - Cali Challenger Britania Zavaleta - Puebla Tanger Challenger Meknes Challenger Sarajevo Challenger Napoli Challenger Athens Challenger Sofia Challenger Medellin Challenger Lugano Challenger Cancun Challenger Como Challenger Santiago Challenger Sony Ericsson Open - Miami Rabat Challenger Sony Ericsson Open - Miami Sao Paulo Challenger Prague Challenger Bordeaux Challenger Rijeka Challenger Kosice Challenger Monte-Carlo Rolex Masters - Monte-Carlo Braunschweig Challenger Poznan Challenger BNP Paribas Open - Indian Wells Trani Challenger San Marino Challenger Genova Challenger Madrid Challenger Sao Jose Do Rio Preto Challenger Sao Leopoldo Challenger Meknes Challenger Sao Paulo Challenger Tour Finals BNP Paribas Open - Indian Wells Sony Open Tennis - Miami Blumenau Challenger Zagreb Challenger Oeiras 3 Challenger BNP Paribas Open - Indian Wells Miami Open - Miami Rome Challenger Monte-Carlo Rolex Masters - Monte-Carlo Bordeaux Challenger Internazionali BNL d'Italia - Rome BNP Paribas Open - Indian Wells Milan Challenger Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo San Marino Challenger Shanghai Rolex Masters - Shanghai Como Challenger Brasov Challenger BNP Paribas Open - Indian Wells Miami Open - Miami Lermontov Challenger Monte-Carlo Rolex Masters - Monte-Carlo Mutua Madrid Open - Madrid Internazionali BNL d'Italia - Rome Cherbourg Challenger Rogers Cup - Toronto Trieste Challenger Sarajevo Challenger Napoli Challenger Shanghai Rolex Masters - Shanghai Samarkand Challenger BNP Paribas Masters - Paris Kosice Challenger BNP Paribas Open - Indian Wells Miami Open - Miami Tulln Challenger Monte-Carlo Rolex Masters - Monte-Carlo Mutua Madrid Open - Madrid Internazionali BNL d'Italia - Rome Liberec Challenger Shanghai Rolex Masters - Shanghai Itajai Challenger Santos Challenger BNP Paribas Masters - Paris Internazionali BNL d'Italia - Rome Western & Southern Open - New York Miami Open - Miami Trnava Challenger Sibiu Challenger Barcelona Challenger Kolkata Challenger New Delhi Challenger Cap Cana Challenger Casablanca Challenger Rome Challenger Bratislava Challenger Mersin Challenger Itajai Challenger Sao Paulo Challenger Tunis Challenger Samarkand Challenger Arad Challenger Kosice Challenger Portoroz Challenger Bergamo Challenger Poznan Challenger Cordenons Challenger Meknes Challenger Tashkent Challenger Geneva Challenger Helsinki Challenger Santo Domingo Challenger Santos Challenger Poznan Challenger Morelos Challenger BNP Paribas Open - Indian Wells Irving Challenger San Luis Potosi Challenger Ostrava Challenger Internazionali BNL d'Italia - Rome BNP Paribas Open - Indian Wells Heilbronn Challenger Moscow Challenger Mutua Madrid Open - Madrid Braunschweig Challenger Internazionali BNL d'Italia - Rome San Benedetto Challenger National Bank Open - Toronto Cincinnati Open - Cincinnati Bordeaux Challenger Andria Challenger Shanghai Rolex Masters - Shanghai Rolex Paris Masters - Paris Alphen Challenger Meknes Challenger Mersin Challenger Medellin Challenger Trnava Challenger Genova Challenger Mohammedia Challenger Bendigo Challenger Lima Challenger Guayaquil Challenger Nottingham 1 Challenger Quimper Challenger Lille Challenger Palermo Challenger Prostejov Challenger Sarajevo Challenger Buenos Aires Challenger Kosice Challenger Orleans Challenger Tunis Challenger Istanbul Challenger Bratislava 2 Challenger Ismaning Challenger Lisbon Challenger Ostrava Challenger Karshi Challenger Rome 2 Challenger Salzburg-Anif Challenger Tunis Challenger Bratislava Challenger Helsinki Challenger Lugano Challenger Mauthausen Challenger Sibiu Challenger Yokohama Challenger Szekesfehervar Challenger Ostrava Challenger Poznan Challenger Helsinki Challenger Braunschweig Challenger Phoenix Challenger Tampere Challenger Cortina Challenger Bratislava Challenger Nottingham 2 Challenger Forli 5 Challenger Tampere Challenger Kenitra Challenger Rosario Challenger Perugia Challenger Como Challenger Vancouver Challenger Estoril Open - Estoril Marbella Challenger Belgrade Challenger Zug Challenger Santo Domingo Challenger Prague 2 Challenger Aircel Chennai Open - Chennai Copa Claro - Buenos Aires Open Sabadell Atlantico - Barcelona Estoril Open - Estoril Copa Claro - Buenos Aires Open Sabadell Atlantico - Barcelona Portugal Open - Oeiras Portugal Open - Oeiras Bet-at-home Open - Hamburg Winston-Salem Open - Winston-Salem PBZ Zagreb Indoors - Zagreb Millennium Estoril Open - Estoril Qatar ExxonMobil Open - Doha BMW Open - Munich Delray Beach Open - Delray Beach BRD Nastase Tiriac Trophy - Bucharest Millennium Estoril Open - Estoril Open de Nice Cote d'Azur - Nice Aegon Nottingham Open - Nottingham Winston-Salem Open - Winston-Salem Kremlin Cup - Moscow Garanti Koza Sofia Open - Sofia Erste Bank Open - Vienna PBZ Zagreb Indoors - Zagreb Abierto Mexicano - Los Cabos Erste Bank Open - Vienna China Open - Beijing Erste Bank Open - Vienna Open Sud de France - Montpellier New York Open - New York Hamburg European Open - Hamburg Anytech365 Andalucia Open - Marbella Qatar ExxonMobil Open - Doha Millennium Estoril Open - Estoril Dubai Duty Free Tennis Championships - Dubai Wimbledon - London U.S. Open - New York Nordea Open - Bastad Astana Open - Astana Stockholm Open - Stockholm Apia International - Sydney Bucharest Open - Bucharest French Open - Paris Wimbledon - London Open Parc - Lyon U.S. Open - New York Argentina Open - Buenos Aires Barcelona Open Banc Sabadell - Barcelona Australian Open - Melbourne Kremlin Cup - Moscow Brisbane International - Brisbane Mallorca Championships - Mallorca Japan Open Tennis Championships - Tokyo French Open - Paris Open 13 Provence - Marseille TEB BNP Paribas Istanbul Open - Istanbul Abierto Mexicano de Tenis Mifel - Los Cabos ABN AMRO World Tennis Tournament - Rotterdam Vilnius Challenger Heilbronn Challenger Bratislava 1 Challenger Brasil Open - Sao Paulo Wimbledon - London BCR Open Romania - Bucharest Aircel Chennai Open - Chennai Western & Southern Open - Cincinnati Moselle Open - Metz Abierto Mexicano Telcel - Acapulco BNP Paribas Open - Indian Wells China Open - Beijing Miami Open - Miami U.S. Open - New York Grand Prix Hassan II - Casablanca German Tennis Championships - Hamburg Rakuten Japan Open - Tokyo Qatar ExxonMobil Open - Doha Western & Southern Open - Cincinnati Open 13 Provence - Marseille Dubai Duty Free Tennis Championships - Dubai Internazionali BNL d'Italia - Rome Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York French Open - Paris Davis Cup, World Group, PO, SWE-BIH 3-1 Wimbledon - London Davis Cup, Group I, 1R, ECU-BIH 3-2 U.S. Open - New York Australian Open - Melbourne U.S. Open - New York Australian Open - Melbourne Australian Open - Melbourne BNP Paribas Masters - Paris French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York French Open - Paris Australian Open - Melbourne U.S. Open - New York Wimbledon - London Wimbledon - London U.S. Open - New York U.S. Open - New York Australian Open - Melbourne French Open - Paris Australian Open - Melbourne U.S. Open - New York French Open - Paris U.S. Open - New York Australian Open - Melbourne Australian Open Qualifying - Doha Australian Open - Melbourne French Open - Paris French Open - Paris Wimbledon - London Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York U.S. Open - New York Davis Cup, Group 2, 2R, SCG-POR 5-0 Davis Cup, Group 2, 2R, POR-ALG 3-2 Davis Cup, Group 1, 1R, LUX-POR 4-1 Davis Cup, Group 2, 2R, POR-TUN 4-1 Davis Cup, Group 2, 2R, POR-CYP 5-0 Davis Cup, Group 2, 1R, CYP-POR 3-2 Davis Cup, Group 2, PO, ALG-POR 0-5 Davis Cup, Group 2, 1R, POR-DEN 4-1 Davis Cup, Europe/Africa Group II, 2R, POR-CYP 5-0 Davis Cup, Europe/Africa Group II, 2R, EST-BIH 2-3 Davis Cup, Group I, 2R, ISR-POR 3-2 Davis Cup, Group II, 1R, BIH-LUX 4-1 Davis Cup, Group II, 1R, POR-BEN 5-0 Davis Cup, Group II, 2R, BIH-MDA 1-3 Davis Cup, Group II, 2R, POR-LTU 5-0 Davis Cup, Group II, 1R, BIH-GRE 3-1 Davis Cup, Group II, 2R, FIN-BIH 2-3 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, Group 2, 3R, POR-SLO 4-1 Davis Cup, Group II, 3R, LTU-BIH 0-5 Davis Cup, Group I, 1R, BIH-POL 5-0 Davis Cup, World Group I, PO, BIH-RSA 3-1 Davis Cup, Group I, 1R, BIH-MEX 3-1 Davis Cup, Group 1, 1R, GEO-POR 3-2 Davis Cup, Europe/Africa Group II, 3R, POR-BIH 3-2 Davis Cup, Group I, 1R, POR-SVK 4-1 Davis Cup, Group I, 2R, SUI-POR 5-0 Davis Cup, Group II, 3R, DEN-BIH 3-2 Davis Cup, Group II, 2R, BLR-BIH 4-1 Davis Cup, Group II, 3R, MDA-POR 2-3 Davis Cup, Group II, 3R, BIH-LTU 2-3 Davis Cup, Group II, 1R, ZIM-BIH 1-4 Davis Cup, Group II, 3R, POR-BLR 3-2 Davis Cup, Group I, 2R, SVK-BIH 2-3 Davis Cup, World Group, QR, AUS-BIH 4-0 Davis Cup, Group I, 1R, PER-BIH 3-2 Davis Cup, Group I, PO, TUN-BIH 1-3 Davis Cup, Group I, 1R, BIH-GER 0-4 Davis Cup, Group I, PO, BUL-BIH 1-3 Davis Cup, World Group I, 1R, TPE-BIH 3-2 Davis Cup, Group I, PO, UZB-BIH 1-3 Davis Cup, Group II, 2R, BIH-TUR 3-1 Davis Cup, Group I, 2R, BIH-NED 1-3 French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) Salzburg Challenger All Lower level tournaments Plava Laguna Croatia Open - Umag Olympics - Rio de Janeiro Erste Bank Open - Vienna Miami Open - Miami French Open - Paris